#ifndef __TSDA_H
#define __TSDA_H

#include "main.h"

#define TSDA_ID 1
#define TSDA_CAN hcan
#define TSDA_INDEX 0
#define TSDA_PULSE 5000

enum FunctionCode
{
    SEND_CODE = 0x1A,
    RECEIVE_CODE = 0x1B,
    ERROR_CODE = 0x1C,
    READ_CODE = 0x2A
};

// 启动电机
extern void TSDA_Start(void);
// 关闭电机
extern void TSDA_Close(void);
// 急停
extern void TSDA_Stop(void);
// 位置清零
extern void TSDA_SetZero(void);

/**
 * 设置电机速度
 * 单位RPM
 */
extern void TSDA_SetSpeed(float speed);

/**
 * 设置电机位置
 * 单位deg
 */
extern void TSDA_SetAngle(float angle);

/**
 * 设置电机位置控制模式
 * 0为绝对位置, 1为相对位置
 */
extern void TSDA_SetPositonMode(uint8_t mode);

// 是否到指定位置
extern uint8_t TSDA_IsFinished(void);

// 读取电机速度
extern int16_t TSDA_ReadSpeed(void);

// 读取电机角度
extern int32_t TSDA_ReadAngle(void);

#endif
